#include<stdio.h>
#include<sys/types.h>//open
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>//close
#include<string.h>//strlen

int main()
{
  
 // close(0);//关闭stdin
 // close(2);//关闭stderr

  umask(0);
  //int fd=open("test.txt",O_WRONLY|O_CREAT|O_TRUNC,0666);
 
  //追加重定向
  //int fd=open("test.txt",O_WRONLY|O_CREAT|O_APPEND,0666);
  
  //输入重定向
  int fd=open("test.txt",O_RDONLY);
  if(fd<0)
  {
    perror("fd open error:");
    return 1;
  }

  dup2(fd,0);
  
  char buffer[64];

  while(fgets(buffer,sizeof(buffer),stdin))
  {
    printf("%s",buffer);
  }
  
  
//  printf("printf fd=%d\n",fd);
//  fprintf(stdout,"fprintf fp=%d\n",fd);
//    
//  const char* msg="hello world\n";
//  write(1,msg,strlen(msg));
//
  
 // fflush(stdout);
  close(fd);

  return 0;
}
